Various embodiments of this disclosure relate to single-root input/output virtualization (SRIOV) and, more particularly, to arbitration in an SRIOV environment.
Peripheral component internet express (PCIe) cards, which are connectable to general purpose and other computers via a PCIe interface, can extend the functionality of a computer. In general, each PCIe card has a single physical function. Conventionally, that physical function is coupled to a single logical partition, being an operating system (OS) image or application, on an associated computer system.
SRIOV resides on a computer system hosting a PCIe card and extends the function of an SRIOV-enabled PCIe device by virtualizing multiple functions. In this manner, the physical function of the device can be used by multiple logical partitions, each behaving as if it has access to the full functionality of the card. Thus, SRIOV enables the functionality of a PCIe card to be shared among multiple logical partitions. However, this sharing needs to be done in an organized manner.
An SRIOV environment can include one or multiple engines for performing operations. Those operations, particularly in the case of cryptographic operations, can take many processor or execution cycles to complete. The PCIe hardware and virtual drivers cannot accurately estimate how long each operation will take, and thus, sharing the physical functionality of the card can become a complex task.